#ifndef _CORE_H_
#define _CORE_H_

#include "game.h"
#include "render.h"
#include "window.h"
#include "input.h"
#include "pathmngr.h"

class core :public singleton<core>
{
	friend class game;
public:
	core();
	~core();
	void run(const char* _fname,game* _game);
	render* get_render();
	window* get_window();
	game*	get_game();
	void    exit_game();
protected:
	game* m_game;
private:
	window*   m_window;
	render*   m_render;
	input*    m_input;
	pathmngr* m_pathmngr;
	bool m_exitflag;
	u32 m_render_delay;
	u32 m_update_delay;
	u32 m_render_timer;
	u32 m_update_timer;
};

#endif